package pop3proxy.persistence;

import java.util.List;
import java.util.Set;

/**
 * Mailbox-Interface zum speichern von Mails.
 * Client und Server teilen sich die gleiche Mailbox. 
 */
public interface Mailbox {
    public static final Mailbox file = new FileMailbox("mails");
    public static final Mailbox memory = new MemoryMailbox();
    
    int size();
    long mailSize(String uuid);
    List<String> listMails();
    List<String> listMailsWithout(Set<String> filter);
    boolean containsMail(String uuid);
    String readMail(String uuid);
    void deleteMail(String uuid);
    void writeMail(String uuid, String content); //String 1:1 in Datei schreiben
    void writeMail(String uuid, List<String> lines); //Mail Zeile für Zeile schreiben
}
